// 导入模块
import mysql from 'mysql2/promise';

interface Query {
  /** sql 语句 */
  sql: string;
  /** sql中填充的值, */
  values: any;
}

/** sql查询方法 */
export async function query({ sql, values }: Query) {
  // 创建连接池，设置连接池的参数
  // 连接池通过重用以前的连接来帮助减少连接到 MySQL 服务器所花费的时间
  const dbconnection = await mysql.createPool({
    host: process.env.MYSQL_HOST,
    database: process.env.MYSQL_DATABASE,
    user: process.env.MYSQL_USER,
    password: process.env.MYSQL_PASSWORD,
  });

  try {
    // execute 将在内部调用 prepare 和 query
    const [results, fields] = await dbconnection.execute(
      sql,
      values
      //   'SELECT * FROM `table` WHERE `name` = ? AND `age` > ?',
      //   ['Rick C-137', 53]
    );
    // console.log('===========results=========', results); // 结果集
    // console.log('===========fields=========', fields); // 额外的元数据（如果有的话）
    return results;
  } catch (err) {
    console.log('==========query_err========', err);
  }
}
